package com.irdstudio.efp.rule.service.dao;

import java.util.List;

import com.irdstudio.efp.rule.service.domain.TaxBasicInfo;
import com.irdstudio.efp.rule.service.vo.TaxBasicInfoVO;

/**
 * DAO Interface: 自然人基本信息表
 * @author ligm
 * @date 2019-04-29 
 */
public interface TaxBasicInfoDao {
	
	/**
	 * 新增数据 
     * @param inTaxBasicInfoVo
	 * @return 
	 */
	public int insertTaxBasicInfo(TaxBasicInfo taxBasicInfo);

    /**
	 * 根据主键删除信息 
     * @param inTaxBasicInfoVo
	 * @return 
	 */
	public int deleteByPk(TaxBasicInfo taxBasicInfo);

    /**
	 * 根据主键更新信息 
     * @param inTaxBasicInfoVo
	 * @return 
	 */    
	public int updateByPk(TaxBasicInfo taxBasicInfo);

    /**
	 * 根据主键查询详情 
     * @param taxBasicInfo
	 * @return 
	 */
    public TaxBasicInfo queryByPk(TaxBasicInfo taxBasicInfo);

    /**
	 * 一级数据权限,默认查看当前用户对应的数据 
     * @param taxBasicInfo
	 * @return 
	 */
	public List<TaxBasicInfo> queryAllByLevelOneByPage(TaxBasicInfoVO taxBasicInfo);
	
    /**
	 * 二级数据权限,默认查看当前用户及所属机构对应的数据 
     * @param taxBasicInfo
	 * @return 
	 */
	public List<TaxBasicInfo> queryAllByLevelTwoByPage(TaxBasicInfoVO taxBasicInfo);
	
    /**
	 * 三级数据权限,默认查看当前用户所在机构及下属机构对应的数据 
     * @param taxBasicInfo
	 * @return 
	 */
	public List<TaxBasicInfo> queryAllByLevelThreeByPage(TaxBasicInfoVO taxBasicInfo);

    /**
	 * 四级数据权限,默认预留，便于后续自定义 
     * @param taxBasicInfo
	 * @return 
	 */
    public List<TaxBasicInfo> queryAllByLevelFourByPage(TaxBasicInfoVO taxBasicInfo);

    /**
	 * 五级数据权限,默认预留，便于后续自定义 
     * @param taxBasicInfo
	 * @return 
	 */
    public List<TaxBasicInfo> queryAllByLevelFiveByPage(TaxBasicInfoVO taxBasicInfo);
    
    /**
     * 通过证件类型证件号以及授信流水号查询
     * @author zhoucs1
     * @since  2019年5月7日 上午10:27:19
     * @param taxBasicInfo
     * @return
     */
    public TaxBasicInfo queryByCerTpAndCertCodeAndCrdtFlowNo(TaxBasicInfo taxBasicInfo);

    /**
     * 需求编号：2019D0519<br/>
     * 问题编号：<br/>
     * 功能描述：通过给定的条件进行模糊搜索查询符合条件的记录<br/>
     * 开发人员：周才顺<br/>
     * 创建时间：2019年5月9日 上午11:22:24<br/>
     * @author zhoucs1
     * @since  1.0 
     * @version 1.0
     * @param taxBasicInfoVO
     * @return
     */
	public List<TaxBasicInfo> queryAllByConditionByPage(TaxBasicInfo taxBasicInfo);

	/**
	 * 需求编号：2019D0519<br/>
	 * 问题编号：<br/>
	 * 功能描述：通过授信流水号查询主表信息<br/>
	 * 开发人员：周才顺<br/>
	 * 创建时间：2019年5月13日 下午3:00:32<br/>
	 * @author zhoucs1
	 * @since  1.0 
	 * @version 1.0
	 * @param queryTaxBasicInfo
	 * @return
	 */
	public TaxBasicInfo queryByCrdtAppFlowNo(TaxBasicInfo queryTaxBasicInfo);

	/**
	 * 需求编号：【2019D0509】
	 * @since 2019/11/15
	 * @param taxBasicInfoVO
	 * @return
	 */
	public List<TaxBasicInfo> queryAllOwnerByPage(TaxBasicInfoVO taxBasicInfoVO);

	public List<TaxBasicInfo> queryAllCurrOrgByPage(TaxBasicInfoVO taxBasicInfoVO);

	public List<TaxBasicInfo> queryAllCurrDownOrgByPage(TaxBasicInfoVO taxBasicInfoVO);

	public List<TaxBasicInfo> queryAllCurrOwnerPrdByPage(TaxBasicInfoVO taxBasicInfoVO);
}
